[INFO] cloning repository https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 00e364a079fb275a51f4ed30fc0dc852d26a23f6
[INFO] testing Masahiro-Obuchi/gitbucket-mcp-server-rs against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMasahiro-Obuchi%2Fgitbucket-mcp-server-rs" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs
[INFO] finished tweaking git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs
[INFO] tweaked toml for git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Masahiro-Obuchi/gitbucket-mcp-server-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded serial_test v3.4.0
[INFO] [stderr]   Downloaded sdd v3.0.10
[INFO] [stderr]   Downloaded scc v2.4.0
[INFO] [stderr]   Downloaded serial_test_derive v3.4.0
[INFO] [stderr]   Downloaded rmcp-macros v1.3.0
[INFO] [stderr]   Downloaded rmcp v1.3.0
[INFO] [stderr]   Downloaded openssl-sys v0.9.112
[INFO] [stderr]   Downloaded openssl v0.10.76
[INFO] [stderr]   Downloaded iri-string v0.7.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 12fad01e74611ff23c765e2d943d8660f889ad8b1905c4162153ebea65efb20f
[INFO] running `Command { std: "docker" "start" "-a" "12fad01e74611ff23c765e2d943d8660f889ad8b1905c4162153ebea65efb20f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "12fad01e74611ff23c765e2d943d8660f889ad8b1905c4162153ebea65efb20f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12fad01e74611ff23c765e2d943d8660f889ad8b1905c4162153ebea65efb20f", kill_on_drop: false }`
[INFO] [stdout] 12fad01e74611ff23c765e2d943d8660f889ad8b1905c4162153ebea65efb20f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1c248f2cd6e920cd20db68da3bea42a3e05bc1584e5f43ab05332923132d3e1b
[INFO] running `Command { std: "docker" "start" "-a" "1c248f2cd6e920cd20db68da3bea42a3e05bc1584e5f43ab05332923132d3e1b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling psl-types v2.0.11
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling rmcp v1.3.0
[INFO] [stderr]    Compiling iri-string v0.7.11
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling rmcp-macros v1.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling publicsuffix v2.3.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling cookie_store v0.22.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling gitbucket-mcp-server v0.2.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "1c248f2cd6e920cd20db68da3bea42a3e05bc1584e5f43ab05332923132d3e1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c248f2cd6e920cd20db68da3bea42a3e05bc1584e5f43ab05332923132d3e1b", kill_on_drop: false }`
[INFO] [stdout] 1c248f2cd6e920cd20db68da3bea42a3e05bc1584e5f43ab05332923132d3e1b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2af2a5629d388c1747ef1032b2ef4198ea1aad4af2c56c132f1262ee050ef902
[INFO] running `Command { std: "docker" "start" "-a" "2af2a5629d388c1747ef1032b2ef4198ea1aad4af2c56c132f1262ee050ef902", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling rmcp v1.3.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling sdd v3.0.10
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling serial_test_derive v3.4.0
[INFO] [stderr]    Compiling scc v2.4.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serial_test v3.4.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling gitbucket-mcp-server v0.2.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 06s
[INFO] running `Command { std: "docker" "inspect" "2af2a5629d388c1747ef1032b2ef4198ea1aad4af2c56c132f1262ee050ef902", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2af2a5629d388c1747ef1032b2ef4198ea1aad4af2c56c132f1262ee050ef902", kill_on_drop: false }`
[INFO] [stdout] 2af2a5629d388c1747ef1032b2ef4198ea1aad4af2c56c132f1262ee050ef902
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 92d317ca63d60e42e9c0d37e3177303dbd8cfd2df54da8ac59a2b2ee352d9bf3
[INFO] running `Command { std: "docker" "start" "-a" "92d317ca63d60e42e9c0d37e3177303dbd8cfd2df54da8ac59a2b2ee352d9bf3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gitbucket_mcp_server-f995d8ad5f90c3e6)
[INFO] [stdout] 
[INFO] [stdout] running 122 tests
[INFO] [stdout] test api::client::tests::test_new_client_with_partial_web_auth_fails ... ok
[INFO] [stdout] test api::client::tests::test_normalize_already_has_api_v3 ... ok
[INFO] [stdout] test api::client::tests::test_normalize_empty_fails ... ok
[INFO] [stdout] test api::client::tests::test_normalize_trailing_slash ... ok
[INFO] [stdout] test api::client::tests::test_normalize_whitespace_only_fails ... ok
[INFO] [stdout] test api::client::tests::test_normalize_with_http ... ok
[INFO] [stdout] test api::client::tests::test_normalize_simple_hostname ... ok
[INFO] [stdout] test api::client::tests::test_parse_success_body_accepts_status_body_wrapper ... ok
[INFO] [stdout] test api::client::tests::test_parse_success_body_accepts_wrapped_json_string ... ok
[INFO] [stdout] test api::web::tests::test_label_id_from_page_does_not_match_label_prefix ... ok
[INFO] [stdout] test api::client::tests::test_normalize_with_https ... ok
[INFO] [stdout] test api::web::tests::test_normalize_web_base_url ... ok
[INFO] [stdout] test api::client::tests::test_normalize_with_path_prefix ... ok
[INFO] [stdout] test api::client::tests::test_parse_success_body_maps_wrapped_404_to_api_error ... ok
[INFO] [stdout] test api::client::tests::test_parse_success_body_maps_wrapped_error_message_to_api_error ... ok
[INFO] [stdout] test config::tests::test_config_dir_from_env ... ok
[INFO] [stdout] test config::tests::test_config_file_deserialize ... ok
[INFO] [stdout] test config::tests::test_from_env_empty_url ... ok
[INFO] [stdout] test config::tests::test_from_env_missing_url ... ok
[INFO] [stdout] test config::tests::test_config_file_serialize ... ok
[INFO] [stdout] test config::tests::test_from_env_with_optional_web_credentials ... ok
[INFO] [stdout] test config::tests::test_config_dir_default ... ok
[INFO] [stdout] test config::tests::test_from_env_empty_token ... ok
[INFO] [stdout] test config::tests::test_config_file_deserialize_empty ... ok
[INFO] [stdout] test config::tests::test_from_env_missing_token ... ok
[INFO] [stdout] test config::tests::test_config_file_load_missing_returns_default ... ok
[INFO] [stdout] test config::tests::test_config_file_save_and_load ... ok
[INFO] [stdout] test api::web::tests::test_label_id_from_page_finds_encoded_label_name ... ok
[INFO] [stdout] test config::tests::test_config_file_permissions ... ok
[INFO] [stdout] test api::web::tests::test_label_id_from_page_finds_plain_label_name ... ok
[INFO] [stdout] test models::comment::tests::test_deserialize_comment ... ok
[INFO] [stdout] test config::tests::test_load_env_overrides_file ... ok
[INFO] [stdout] test config::tests::test_load_from_toml_file ... ok
[INFO] [stdout] test config::tests::test_load_with_file_invalid_toml_returns_parse_error ... ok
[INFO] [stdout] test error::tests::test_config_error_display ... ok
[INFO] [stdout] test config::tests::test_load_partial_env_partial_file ... ok
[INFO] [stdout] test config::tests::test_load_with_partial_web_credentials_fails ... ok
[INFO] [stdout] test error::tests::test_other_error_display ... ok
[INFO] [stdout] test error::tests::test_json_error_from ... ok
[INFO] [stdout] test models::comment::tests::test_serialize_create_comment ... ok
[INFO] [stdout] test models::issue::tests::test_deserialize_issue ... ok
[INFO] [stdout] test models::issue::tests::test_serialize_create_issue ... ok
[INFO] [stdout] test models::label::tests::test_deserialize_label ... ok
[INFO] [stdout] test models::issue::tests::test_deserialize_issue_minimal ... ok
[INFO] [stdout] test models::issue::tests::test_serialize_update_issue ... ok
[INFO] [stdout] test config::tests::test_load_with_file_password_in_toml_fails ... ok
[INFO] [stdout] test models::label::tests::test_deserialize_label_minimal ... ok
[INFO] [stdout] test models::milestone::tests::test_serialize_create_milestone ... ok
[INFO] [stdout] test models::label::tests::test_serialize_create_label ... ok
[INFO] [stdout] test models::milestone::tests::test_serialize_update_milestone ... ok
[INFO] [stdout] test models::milestone::tests::test_deserialize_milestone ... ok
[INFO] [stdout] test models::label::tests::test_serialize_update_label_skips_missing_fields ... ok
[INFO] [stdout] test models::pull_request::tests::test_serialize_create_pull_request ... ok
[INFO] [stdout] test models::pull_request::tests::test_serialize_merge_pull_request_minimal ... ok
[INFO] [stdout] test models::pull_request::tests::test_deserialize_pull_request ... ok
[INFO] [stdout] test models::pull_request::tests::test_deserialize_merge_result ... ok
[INFO] [stdout] test models::pull_request::tests::test_serialize_update_pull_request_skips_missing_fields ... ok
[INFO] [stdout] test models::user::tests::test_deserialize_user_minimal ... ok
[INFO] [stdout] test models::user::tests::test_serialize_user ... ok
[INFO] [stdout] test models::repository::tests::test_serialize_create_repository ... ok
[INFO] [stdout] test models::repository::tests::test_deserialize_branch ... ok
[INFO] [stdout] test error::tests::test_api_error_display ... ok
[INFO] [stdout] test models::user::tests::test_deserialize_user_full ... ok
[INFO] [stdout] test models::repository::tests::test_serialize_create_repository_minimal ... ok
[INFO] [stdout] test tools::issue::tests::test_update_issue_passes_trimmed_body_to_api_and_serializes_response ... ok
[INFO] [stdout] test tools::issue::tests::test_get_issue_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::issue::tests::test_list_issue_comments_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::issue::tests::test_add_issue_comment_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::issue::tests::test_create_issue_passes_body_to_api_and_serializes_response ... ok
[INFO] [stdout] test config::tests::test_from_env_success ... ok
[INFO] [stdout] test config::tests::test_load_invalid_toml_from_config_dir_returns_parse_error ... ok
[INFO] [stdout] test tools::issue::tests::test_list_issues_passes_trimmed_fields_and_state_to_api ... ok
[INFO] [stdout] test config::tests::test_load_no_config_at_all ... ok
[INFO] [stdout] test models::repository::tests::test_deserialize_repository ... ok
[INFO] [stdout] test tools::label::tests::test_create_label_passes_trimmed_fields_and_normalized_color ... ok
[INFO] [stdout] test tools::label::tests::test_get_label_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::label::tests::test_delete_label_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::label::tests::test_list_labels_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::label::tests::test_update_label_passes_trimmed_fields_and_normalized_color ... ok
[INFO] [stdout] test tools::milestone::tests::test_create_milestone_trims_optional_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::milestone::tests::test_list_milestones_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::milestone::tests::test_delete_milestone_serializes_confirmation ... ok
[INFO] [stdout] test tools::pull_request::tests::test_create_pull_request_passes_trimmed_fields_to_api_and_serializes_response ... ok
[INFO] [stdout] test tools::label::tests::test_update_label_rejects_empty_change_set ... ok
[INFO] [stdout] test tools::milestone::tests::test_update_milestone_trims_fields_and_preserves_clear_values ... ok
[INFO] [stdout] test tools::pull_request::tests::test_get_pull_request_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::pull_request::tests::test_add_pull_request_comment_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::pull_request::tests::test_merge_pull_request_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::pull_request::tests::test_list_pull_requests_passes_trimmed_fields_and_state_to_api ... ok
[INFO] [stdout] test tools::pull_request::tests::test_update_pull_request_passes_trimmed_fields_to_api_and_serializes_response ... ok
[INFO] [stdout] test tools::repository::tests::test_create_repository_passes_body_to_api_and_serializes_response ... ok
[INFO] [stdout] test tools::repository::tests::test_fork_repository_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::repository::tests::test_get_repository_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::repository::tests::test_list_branches_passes_trimmed_fields_and_serializes_response ... ok
[INFO] [stdout] test tools::repository::tests::test_list_repositories_passes_trimmed_owner_and_serializes_response ... ok
[INFO] [stdout] test tools::user::tests::test_get_authenticated_user_serializes_response ... ok
[INFO] [stdout] test tools::issue::tests::test_list_issues_rejects_invalid_state ... ok
[INFO] [stdout] test tools::label::tests::test_create_label_rejects_invalid_color ... ok
[INFO] [stdout] test tools::validation::tests::test_issue_state_rejects_invalid_value ... ok
[INFO] [stdout] test tools::validation::tests::test_label_color_accepts_hash_prefix ... ok
[INFO] [stdout] test tools::user::tests::test_get_user_uses_trimmed_username_and_serializes_response ... ok
[INFO] [stdout] test tools::validation::tests::test_label_color_rejects_invalid_value ... ok
[INFO] [stdout] test tools::validation::tests::test_list_state_rejects_invalid_value ... ok
[INFO] [stdout] test tools::validation::tests::test_label_color_rejects_multiple_hash_prefix ... ok
[INFO] [stdout] test tools::validation::tests::test_repository_fields_trims_values ... ok
[INFO] [stdout] test tools::validation::tests::test_required_optional_trimmed_rejects_blank ... ok
[INFO] [stdout] test tools::validation::tests::test_required_trimmed_rejects_blank ... ok
[INFO] [stdout] test tools::validation::tests::test_required_trimmed_trims_value ... ok
[INFO] [stdout] test api::client::tests::test_new_client_with_web_auth_creates_successfully ... ok
[INFO] [stdout] test server::tests::test_server_info ... ok
[INFO] [stdout] test tools::issue::tests::test_update_issue_requires_a_change ... ok
[INFO] [stdout] test tools::pull_request::tests::test_create_pull_request_rejects_blank_head ... ok
[INFO] [stdout] test api::client::tests::test_new_client_creates_successfully ... ok
[INFO] [stdout] test tools::repository::tests::test_create_repository_rejects_blank_name ... ok
[INFO] [stdout] test tools::pull_request::tests::test_add_pull_request_comment_rejects_blank_body ... ok
[INFO] [stdout] test tools::issue::tests::test_add_issue_comment_rejects_blank_body ... ok
[INFO] [stdout] test tools::pull_request::tests::test_list_pull_requests_rejects_invalid_state ... ok
[INFO] [stdout] test tools::pull_request::tests::test_update_pull_request_rejects_empty_change_set ... ok
[INFO] [stdout] test tools::milestone::tests::test_list_milestones_rejects_blank_owner ... ok
[INFO] [stdout] test tools::milestone::tests::test_update_milestone_rejects_empty_change_set ... ok
[INFO] [stdout] test tools::repository::tests::test_list_repositories_rejects_blank_owner ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gitbucket_mcp_server-83ec0e0bfbef2dd7)
[INFO] [stdout] test tools::user::tests::test_get_user_rejects_blank_username ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 122 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.38s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/api_client_test.rs (/opt/rustwide/target/debug/deps/api_client_test-25c45e9767246875)
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test test_api_error_404 ... ok
[INFO] [stdout] test test_add_issue_comment ... ok
[INFO] [stdout] test test_get_closed_issue_fills_closed_at_from_updated_at_when_missing ... ok
[INFO] [stdout] test test_get_authenticated_user ... ok
[INFO] [stdout] test test_api_error_401 ... ok
[INFO] [stdout] test test_delete_milestone ... ok
[INFO] [stdout] test test_create_issue ... ok
[INFO] [stdout] test test_create_repository ... ok
[INFO] [stdout] test test_create_label ... ok
[INFO] [stdout] test test_create_milestone ... ok
[INFO] [stdout] test test_fork_repository ... ok
[INFO] [stdout] test test_get_issue ... ok
[INFO] [stdout] test test_create_pull_request ... ok
[INFO] [stdout] test test_delete_label_url_encodes_name ... ok
[INFO] [stdout] test test_get_label_url_encodes_name ... ok
[INFO] [stdout] test test_get_repository ... ok
[INFO] [stdout] test test_list_branches ... ok
[INFO] [stdout] test test_create_milestone_falls_back_to_web_session_on_404 ... ok
[INFO] [stdout] test test_list_issues ... ok
[INFO] [stdout] test test_list_milestones ... ok
[INFO] [stdout] test test_list_pull_requests ... ok
[INFO] [stdout] test test_get_user ... ok
[INFO] [stdout] test test_get_pull_request_maps_wrapped_404_to_api_error ... ok
[INFO] [stdout] test test_list_issue_comments_paginates ... ok
[INFO] [stdout] test test_get_milestone ... ok
[INFO] [stdout] test test_list_labels ... ok
[INFO] [stdout] test test_list_pull_requests_paginates ... ok
[INFO] [stdout] test test_list_repositories ... ok
[INFO] [stdout] test test_delete_milestone_falls_back_to_web_session_on_404 ... ok
[INFO] [stdout] test test_list_repositories_paginates_across_user_pages ... ok
[INFO] [stdout] test test_list_repositories_fallback_to_org ... ok
[INFO] [stdout] test test_update_issue_close ... ok
[INFO] [stdout] test test_update_label_fallback_rejects_description_change ... ok
[INFO] [stdout] test test_update_issue_missing_issue_does_not_fallback_on_404 ... ok
[INFO] [stdout] test test_update_pull_request_fallback_rejects_base_branch_change ... ok
[INFO] [stdout] test test_merge_pull_request ... ok
[INFO] [stdout] test test_merge_pull_request_maps_wrapped_404_to_api_error ... ok
[INFO] [stdout] test test_update_pull_request ... ok
[INFO] [stdout] test test_update_issue_state_without_web_credentials_returns_clear_error ... ok
[INFO] [stdout] test test_update_milestone ... ok
[INFO] [stdout] test test_update_label_url_encodes_name ... ok
[INFO] [stdout] test test_update_pull_request_maps_wrapped_404_to_api_error ... ok
[INFO] [stdout] test test_update_pull_request_falls_back_to_issue_update_on_404 ... ok
[INFO] [stdout] test test_update_label_falls_back_to_web_session_on_404 ... ok
[INFO] [stdout] test test_update_pull_request_missing_pr_does_not_fallback_on_404 ... ok
[INFO] [stdout] test test_update_issue_title_body_fallback_updates_via_web_session ... ok
[INFO] [stdout] test test_update_issue_state_falls_back_to_web_session_on_404 ... ok
[INFO] [stdout] test test_update_milestone_falls_back_to_web_session_on_404 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_test.rs (/opt/rustwide/target/debug/deps/e2e_test-7d39ba97af8ebf2a)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_e2e_add_issue_comment ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_add_pull_request_comment ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD
[INFO] [stdout] test test_e2e_create_issue ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_create_pull_request ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD
[INFO] [stdout] test test_e2e_create_repository ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN
[INFO] [stdout] test test_e2e_get_authenticated_user ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN
[INFO] [stdout] test test_e2e_get_repository ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_get_user_for_authenticated_login ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN
[INFO] [stdout] test test_e2e_label_lifecycle ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_list_branches_for_created_repository ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN
[INFO] [stdout] test test_e2e_list_issues ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_list_pull_requests ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_list_repositories_for_owner ... ignored, requires GITBUCKET_E2E_URL and GITBUCKET_E2E_TOKEN
[INFO] [stdout] test test_e2e_merge_pull_request ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, GITBUCKET_E2E_REPO, GITBUCKET_E2E_GIT_USERNAME, and GITBUCKET_E2E_GIT_PASSWORD
[INFO] [stdout] test test_e2e_milestone_lifecycle ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_update_issue ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] test test_e2e_update_issue_with_title_body_on_web_fallback_instance ... ignored, requires GITBUCKET_E2E_URL, GITBUCKET_E2E_TOKEN, GITBUCKET_E2E_OWNER, and GITBUCKET_E2E_REPO
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 17 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mcp_server_test.rs (/opt/rustwide/target/debug/deps/mcp_server_test-5296acc2fe91d55d)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test test_mcp_call_tool_list_milestones_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_rejects_invalid_state_before_api_call ... ok
[INFO] [stdout] test test_mcp_call_tool_merge_pull_request_trims_commit_message_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_list_repositories_trims_owner_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_create_issue_trims_fields_and_hits_api ... ok
[INFO] [stdout] test test_mcp_call_tool_create_milestone_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_blank_username ... ok
[INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_empty_pull_request_update ... ok
[INFO] [stdout] test test_mcp_call_tool_create_label_normalizes_color_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_delete_label_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_returns_validation_error_for_empty_issue_update ... ok
[INFO] [stdout] test test_mcp_call_tool_get_authenticated_user_returns_json_and_hits_api ... ok
[INFO] [stdout] test test_mcp_call_tool_list_labels_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_list_pull_requests_passes_state_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_get_repository_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_update_label_normalizes_color_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_rejects_invalid_label_color_before_api_call ... ok
[INFO] [stdout] test test_mcp_call_tool_delete_milestone_serializes_confirmation ... ok
[INFO] [stdout] test test_mcp_call_tool_update_pull_request_trims_fields_and_serializes_json ... ok
[INFO] [stdout] test test_mcp_call_tool_update_milestone_rejects_empty_change_set ... ok
[INFO] [stdout] test test_mcp_lists_all_expected_tools_and_required_inputs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stderr]    Doc-tests gitbucket_mcp_server
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "92d317ca63d60e42e9c0d37e3177303dbd8cfd2df54da8ac59a2b2ee352d9bf3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92d317ca63d60e42e9c0d37e3177303dbd8cfd2df54da8ac59a2b2ee352d9bf3", kill_on_drop: false }`
[INFO] [stdout] 92d317ca63d60e42e9c0d37e3177303dbd8cfd2df54da8ac59a2b2ee352d9bf3
